package com.company.L_3_1;

import java.lang.reflect.Method;

/**
 * Created by vilen on 2015/3/27.
 */
public class ClassUtil {
    /**
     * 打印类的信息，包括类的成员函数 成员变量
     */
    public static void printMessage(Object obj){
        Class c = obj.getClass();
        //获取类的名称
        System.out.print("类的名称是"+c.getName());
        /**
         * method类
         *
         getMethod获取所有public的方法
         getDeclaredMethods 是获取自己的类的声明方法 不问访问权限

         */
        Method[] m = c.getMethods();
        c.getDeclaredMethods();
        for(int i=0;i<m.length;i++){
            //得到方法的返回值类型
            Class returnType = m[i].getReturnType();
            System.out.println("类类型的名字"+returnType.getName());
            System.out.print(m[i].getName());

            System.out.print("(");
            //获取参数类型
            Class[] parameterTypes =  m[i].getParameterTypes();
            for (Class c1 : parameterTypes){
                System.out.print(c1.getName() + ",");
            }
            System.out.println(")");
        }

    }
}
